#include<iostream>
using namespace std;
int choice[3]={1,2,3};
int n;
int path[20];
int sum;
int ans;
int  mem[100000][10];
void  dfs(int x,int sum)
{
if(sum>n)return;
if(x>10)
{
     
  if (sum==n)
    {
      for(int i=1;i<=10;i++)
      {
     mem[ans][i]=path[i];
      }
       ans++;

  }

    return ;
  }
  for(int i=1;i<=3;i++)
  {
    path[x]=i;
    dfs(x+1,sum+i);
    path[x]=0;
  }
  
}




int main()
{
cin>>n;
dfs(1,0);
cout<<ans<<endl;
  for(int i=0;i<ans;i++)
      {
     for(int j=1;j<=10;j++)
     {
        cout<<mem[i][j]<<" ";
       }
   cout<<endl;
       }
    return 0;
}